package com.kobeliu.entity;

import java.util.LinkedList;
import java.util.Queue;

/**
 * @Author: Kobe_Liu
 * @Date: 2021/12/7 18:35
 */
public class Demo_72_sword_49 {

    public static void main(String[] args) {

        System.out.println(nthUglyNumber(1600));
    }

    public static long nthUglyNumber(int n) {

        if(n==1) return 1;
        Queue<Long> q_2 = new LinkedList<>();
        Queue<Long> q_3 = new LinkedList<>();
        Queue<Long> q_5 = new LinkedList<>();
        q_2.add(2l);
        q_3.add(3l);
        q_5.add(5l);
        Long n_2 = 0l , n_3 = 0l, n_5 = 0l;
        long ans = 0;
        for(int i=0;i<n-1;i++){
            n_2 = q_2.peek();
            n_3 = q_3.peek();
            n_5 = q_5.peek();

            if(n_2 < n_3 && n_2 < n_5){
                ans = q_2.poll();
                q_2.add(ans*2);
                q_3.add(ans*3);
                q_5.add(ans*5);
            }
            if(n_3 < n_2 && n_3 < n_5){
                ans = q_3.poll();
                q_3.add(ans*3);
                q_5.add(ans*5);
            }
            if(n_5 < n_2 && n_5 < n_3){
                ans = q_5.poll();
                q_5.add(ans*5);
            }

        }
        return ans;


    }
}
